VPC への VPN 接続で IKEv2 を使う – IOS XE の場合
こんにちは、VPN 芸人のトランです。みなさんいかがお過ごしでしょうか?
きょうは、Site-to-Site VPN で AWS へ接続されたカスタマーゲートウェイで IKEv2 を使用する方法についてご紹介します。
前提
- 2019年2月6日以降に作成された Site-to-Site VPN を使用していること*
- IOS 15.1 M&T 以降を実行するカスタマーゲートウェイを使用していること
*AWS Site-to-Site VPN Now Supports IKEv2 https://aws.amazon.com/about-aws/whats-new/2019/02/aws-site-to-site-vpn-now-supports-ikev2/
今回は、手軽に再現できるよう VPC 上で起動した Cisco Cloud Services Router 1000V を例に設定方法をご紹介します。
R123(config)#do show version Cisco IOS XE Software, Version 16.09.02 Cisco IOS Software [Fuji], Virtual XE Software (X86_64_LINUX_IOSD-UNIVERSALK9-M), Version 16.9.2, RELEASE SOFTWARE (fc4) Technical Support: http://www.cisco.com/techsupport Copyright (c) 1986-2018 by Cisco Systems, Inc. Compiled Mon 05-Nov-18 19:26 by mcpre
なお、まだ IKEv1 を使用する Site-to-Site VPN 接続を設定していない場合、VPC マネジメントコンソールから 新しい Site-to-Site VPN 接続を作成したうえでカスタマーゲートウェイを設定しておきましょう。
! VPC マネジメントコンソールからダウンロードした設定例の通りに (IKEv1 で) 設定します。 R123(config)#crypto isakmp policy 200 R123(config-isakmp)# encryption aes 128 R123(config-isakmp)# authentication pre-share R123(config-isakmp)# group 2 R123(config-isakmp)# lifetime 28800 R123(config-isakmp)# hash sha R123(config-isakmp)#exit R123(config)# R123(config)#crypto keyring keyring-vpn-000cb14fede018fda-0 R123(conf-keyring)# ! 省略
IKEv2 への切り替え
IKEv1 で正しく ISAKMP SA と IPsec SA がそれぞれ確立されていることを確認できたら、実際に IKEv2 への切り替えを行います。
まず IKEv2 で使うための Phase 1 Proposal (IKEv2 Cipher Suite) を用意します。今回は AWS デフォルトの組み合わせを選択しました。
! crypto ikev2 proposal AES128-SHA96-MODP1024 encryption aes-cbc-128 integrity sha1 group 2 exit !
なお、既定で用意される Phase 1 Proposal ("default") は AWS でサポートされない Integrity アルゴリズム (SHA512, SHA384) しか許容されないため使用できません。
R123(config)#do show crypto ikev2 proposal IKEv2 proposal: AES128-SHA96-MODP1024 Encryption : AES-CBC-128 Integrity : SHA96 PRF : SHA1 DH Group : DH_GROUP_1024_MODP/Group 2 IKEv2 proposal: default Encryption : AES-CBC-256 Integrity : SHA512 SHA384 PRF : SHA512 SHA384 DH Group : DH_GROUP_256_ECP/Group 19 DH_GROUP_2048_MODP/Group 14 DH_GROUP_521_ECP/Group 21 DH_GROUP_1536_MODP/Group 5
作成した Phase 1 Proposal を IKEv2 SA のソースインターフェイスで使用するポリシーを作成します。
! crypto ikev2 policy GigabitEthernet1 ! 次でソースインターフェイスの IP アドレスを指定します match address local 172.16.0.254 proposal AES128-SHA96-MODP1024 exit !
なお、使用する Phase 1 Proposal を指定したポリシーを用意しない場合は "default" の Phase 1 Proposal が使われるようになっています。
R123(config)#do show crypto ikev2 policy IKEv2 policy : GigabitEthernet1 Match fvrf : global Match address local : 172.16.0.254 Proposal : AES128-SHA96-MODP1024 IKEv2 policy : default Match fvrf : any Match address local : any Proposal : default
IKEv2 で使うためのプロファイルをエンドポイントごとに用意します。
! crypto ikev2 profile ikev2-vpn-000cb14fede018fda-0 match identity remote address 52.193.148.66 255.255.255.255 ! Phase 1 ネゴシエーションで使用するアイデンティティ (IP アドレス) を指定します。 ! カスタマーゲートウェイが直接インターネットに接続されていない (NAT が存在する) 場合、 ! ソースインターフェイスが実際に使用する (プライベート) アドレスを指定します。 identity local address 172.16.0.254 authentication remote pre-share key UM7bie1TnA3d_KF.7ckK_KjK64Q1Hch. authentication local pre-share key UM7bie1TnA3d_KF.7ckK_KjK64Q1Hch. lifetime 28800 exit ! crypto ikev2 profile ikev2-vpn-000cb14fede018fda-1 match identity remote address 54.199.142.165 255.255.255.255 ! Phase 1 ネゴシエーションで使用するアイデンティティ (IP アドレス) を指定します。 ! カスタマーゲートウェイが直接インターネットに接続されていない (NAT が存在する) 場合、 ! ソースインターフェイスが実際に使用する (プライベート) アドレスを指定します。 identity local address 172.16.0.254 authentication remote pre-share key CoYLWNCGZT42tf0VCdTJ7TQePZL65_CA authentication local pre-share key CoYLWNCGZT42tf0VCdTJ7TQePZL65_CA lifetime 28800 exit !
それぞれのトンネルインターフェイス (VTI) に指定された tunnel protection を、既存の IKEv1 から新しく用意した IKEv2 へ変更します。なお、Phase 2 Proposal (ipsec profile や ipsec transform-set) については既にあるものを流用します。
R123(config)#do show running-config | section crypto ipsec crypto ipsec security-association replay window-size 128 crypto ipsec transform-set ipsec-prop-vpn-000cb14fede018fda-0 esp-aes esp-sha-hmac mode tunnel crypto ipsec transform-set ipsec-prop-vpn-000cb14fede018fda-1 esp-aes esp-sha-hmac mode tunnel crypto ipsec df-bit clear crypto ipsec profile ipsec-vpn-000cb14fede018fda-0 set transform-set ipsec-prop-vpn-000cb14fede018fda-0 set pfs group2 crypto ipsec profile ipsec-vpn-000cb14fede018fda-1 set transform-set ipsec-prop-vpn-000cb14fede018fda-1 set pfs group2
インターフェイスをフラップしつつ、使用する tunnel protection を IKEv1 のものから IKEv2 のものへ変更します。
! interface Tunnel1 shutdown no tunnel protection ipsec profile ipsec-vpn-000cb14fede018fda-0 tunnel protection ipsec profile ipsec-vpn-000cb14fede018fda-0 ikev2-profile ikev2-vpn-000cb14fede018fda-0 no shutdown exit !
R123(config)#do show crypto ikev2 sa IPv4 Crypto IKEv2 SA Tunnel-id Local Remote fvrf/ivrf Status 1 172.16.0.254/4500 52.193.148.66/4500 none/none READY Encr: AES-CBC, keysize: 128, PRF: SHA1, Hash: SHA96, DH Grp:2, Auth sign: PSK, Auth verify: PSK Life/Active Time: 28800/886 sec IPv6 Crypto IKEv2 SA #do ping 169.254.25.221 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 169.254.25.221, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 222/222/222 ms
! interface Tunnel2 shutdown no tunnel protection ipsec profile ipsec-vpn-000cb14fede018fda-1 tunnel protection ipsec profile ipsec-vpn-000cb14fede018fda-1 ikev2-profile ikev2-vpn-000cb14fede018fda-1 no shutdown exit !
R123(config)#do show crypto ikev2 sa IPv4 Crypto IKEv2 SA Tunnel-id Local Remote fvrf/ivrf Status 1 172.16.0.254/4500 52.193.148.66/4500 none/none READY Encr: AES-CBC, keysize: 128, PRF: SHA1, Hash: SHA96, DH Grp:2, Auth sign: PSK, Auth verify: PSK Life/Active Time: 28800/945 sec Tunnel-id Local Remote fvrf/ivrf Status 2 172.16.0.254/4500 54.199.142.165/4500 none/none READY Encr: AES-CBC, keysize: 128, PRF: SHA1, Hash: SHA96, DH Grp:2, Auth sign: PSK, Auth verify: PSK Life/Active Time: 28800/4 sec IPv6 Crypto IKEv2 SA R123(config-if)#do ping 169.254.25.241 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 169.254.25.241, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 215/215/215 ms
これで IKEv1 から IKEv2 への切り替えを行うことができました!
参考
Security for VPNs with IPsec Configuration Guide, Cisco IOS Release 15M&T - Cisco https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/sec_conn_vpnips/configuration/15-mt/sec-sec-for-vpns-w-ipsec-15-mt-book.html